Skip to main content
guest
|
Join
|
Help
|
Sign In
guest
Join
|
Help
|
Sign In
IBCS1-WD
Home
Home
pages
changes
Favorites
20
All Pages
20
RefLink
20
Reference Links
ReferenceResources-LearnPython
Log
20
June 1st 2016 by Tom
June 3rd 2016 by Arthur
June 12th 2016 by Alex
June 15th 2016 by Doris
August 31st 2016 by Enzo Yang
Jan 2 2018 Lesson Log
June 17th 2016 by Michael Qian
June 22nd 2016 by Tom
June 24th 2016 by David Ye
May 17th 2017 by Alex Zhou
May 5th 2017 by Tom Zhou
November 11th by Doris Xue
November 14th 2016 by Margaret Sun
November 17th 2016 by Michael Qian
November 23th 2016 by Alex Zhou
November 4th 2016 by Tom Zhou
October 10th 2016 by Margaret Sun
October 12th 2016 by Matt An
October 24th 2016 by Enzo Yang
October 28th 2016 by David Ye
see more
Add
Add "All Pages"
Done
Project Pages
Doris' project page
Alex's project page
Tom's project page
Charles's project page
Matt's project page
Michael's project page
Enzo's project page
Arthur's project page
David's project page
Margaret's project page
November 23th 2016 by Alex Zhou
Edit
0
2
…
1
Tags
Log
Notify
RSS
Backlinks
Source
Print
Export (PDF)
今天我们学习了继承、多态、抽象、接口
1. 继承
类的继承的关键字是extends。使用extends就能使子类继承父类。子类与父类之间的关系永远都是子类is-a 父类,千万不能弄反。
在继承关系中,所有public的变量以及方法都能被继承到子类中,而且子类可以直接调用。但是,如果父类的变量或方法的访问请求是private,那子类就不能直接调用这些方法,只能使用accessor。
子类能有自己异于父类的方法,而这些方法是父类不能调用的,因为子类is-a 父类,而非反过来。
如果子类有一个函数,其函数签名和父类的某一函数相同,但内容与之不同,那这种情况叫做override。调用子类的这个函数时,会运行子类函数里面的内容。
2 多态
如果又一个类是这样的:
public class Students
public UnderGrad extends Students
public Gradstud extends Students
那么 UnderGrad 继承Students
Gradstud 继承 Students
Students 里有一个public函数a
UnderGrad 里有一个函数a,内容跟Students的不一样,但签名一样
Gradstud里有一个函数a,内容跟Students 和 UnderGrad的不一样,但签名一样。
Students s = new Students();
Students u = new UnderGrad();
Students g = new Gradstud();
s.a, u.a, g.a 这三个声明究竟调用的是哪个函数?这就是多态,s.a调用的是Students的,u.a调用的是UnderGrad的,g.a调用的是Gradstud的。这个过程是在运行代码时进行的。
UnderGrad里若有一个函数b,Students 里没有b,那写下u.b时会报错,因为Students里没有b,因此需要强制转换类型变成((UnderGrad) u) .b。
3 抽象
抽象类里面可以有完整的变量,完整的函数,也可以有抽象的、只有一个函数头的函数。抽象类永远不能被实例化。一个普通类可以继承抽象类,但是普通类里面必须把继承下来的抽象方法通过override变成普通方法。普通类里不能有抽象方法。抽象类也能继承抽象类。
4 接口
只有函数头,关键字implements.
Javascript Required
You need to enable Javascript in your browser to edit pages.
help on how to format text
Turn off "Getting Started"
Home
...
Loading...
1. 继承
类的继承的关键字是extends。使用extends就能使子类继承父类。子类与父类之间的关系永远都是子类is-a 父类,千万不能弄反。
在继承关系中,所有public的变量以及方法都能被继承到子类中,而且子类可以直接调用。但是,如果父类的变量或方法的访问请求是private,那子类就不能直接调用这些方法,只能使用accessor。
子类能有自己异于父类的方法,而这些方法是父类不能调用的,因为子类is-a 父类,而非反过来。
如果子类有一个函数,其函数签名和父类的某一函数相同,但内容与之不同,那这种情况叫做override。调用子类的这个函数时,会运行子类函数里面的内容。
2 多态
如果又一个类是这样的:
public class Students
public UnderGrad extends Students
public Gradstud extends Students
那么 UnderGrad 继承Students
Gradstud 继承 Students
Students 里有一个public函数a
UnderGrad 里有一个函数a,内容跟Students的不一样,但签名一样
Gradstud里有一个函数a,内容跟Students 和 UnderGrad的不一样,但签名一样。
Students s = new Students();
Students u = new UnderGrad();
Students g = new Gradstud();
s.a, u.a, g.a 这三个声明究竟调用的是哪个函数?这就是多态,s.a调用的是Students的,u.a调用的是UnderGrad的,g.a调用的是Gradstud的。这个过程是在运行代码时进行的。
UnderGrad里若有一个函数b,Students 里没有b,那写下u.b时会报错,因为Students里没有b,因此需要强制转换类型变成((UnderGrad) u) .b。
3 抽象
抽象类里面可以有完整的变量,完整的函数,也可以有抽象的、只有一个函数头的函数。抽象类永远不能被实例化。一个普通类可以继承抽象类,但是普通类里面必须把继承下来的抽象方法通过override变成普通方法。普通类里不能有抽象方法。抽象类也能继承抽象类。
4 接口
只有函数头,关键字implements.